'use strict';
/**
 * author：小小游 --- allen
 * date：2018.02.04
 * lastUpdateDate：2018.02.04
 * description：Symbol对象的使用
 */

/**
 * 初认识Symbol对象的热身
 * Symbol简单的理解就是一个不会重复的值
 * 注意，Symbol返回的不是一个对象，它返回的是一个值的类型
 * 通常来讲，我们刚接触Symbol的时候，都以为它是字符串，其实
 * 它是两个不同值的类型(不重复)
 * 简单举个例子，如下：
 */
// 得到Symbol的key
let name = Symbol('name');

var obj = {
    age : 28,
    [name] : 'xiaokaykay'
};

/**
 * 通过以下方式都得不到Symbol的key值的
 */
// console.log(Object.keys(obj));
// console.log(Object.getOwnPropertyNames(obj));
// for ( let key in obj ) {
//     console.log(key);
// }

// 只能通过以下方式才能得到Symbol的值
// console.log(Object.getOwnPropertySymbols(obj));
let key = Object.getOwnPropertySymbols(obj)[0];
console.log(`我大儿子名字叫${obj[key]}`);
